package com.cap.bts.crmdp.dealer.meal.dao;

import java.util.List;

import com.cap.bts.crmdp.dealer.meal.domain.MeallineModel;
import com.cap.bts.crmdp.dealer.meal.dto.MealDefineDto;
import com.cap.bts.framework.common.dao.IBaseDao;
import com.cap.bts.framework.common.exception.AppException;

public interface IMealLineManageDao extends IBaseDao<MeallineModel, Long> {

    /**
     * 新增套餐的详细信息
     * 
     * @param meallineModel
     * @return
     * @throws AppException
     */
    public MeallineModel insertMealLineInfo(MeallineModel meallineModel) throws AppException;

    /**
     * 修改套餐的详细信息
     * 
     * @param dto
     * @return
     * @throws AppException
     */
    public boolean updateMealLineInfo(MealDefineDto dto) throws AppException;

    /**
     * 根据套餐ID查询套餐详细信息
     * 
     * @param dto
     * @return
     * @throws AppException
     */
    public List<Object[]> getMeallineList(MealDefineDto dto) throws AppException;

    /**
     * 根据套餐详细信息的ID查询套餐详细信息
     * 
     * @param id
     * @return
     * @throws AppException
     */
    public MeallineModel getMealLIneInfo(Long id) throws AppException;

    /**
     * 根据套餐的ID查询套餐详细信息
     * 
     * @param packageDefId
     * @return
     * @throws AppException
     */
    public List<MeallineModel> getMealLIneInfoByPackageId(Long packageDefId) throws AppException;

    /**
     * 根据套餐ID删除套餐详细信息
     * 
     * @param packageDefId
     * @throws AppException
     */
    public void removeMealLineByPackageDefId(List<MeallineModel> meallineList) throws AppException;

    /**
    * 根据优惠券和提货券的ID查询套餐详细信息
    * @param ticketDefId
    * @return
    * @throws AppException
    */
    public List<MeallineModel> getMeallineListByTicketDefId(Long ticketDefId) throws AppException;
}
